Multiple-computing device systems are commonly employed within a variety of different organizations. A multiple-computing device system may include a number of server computing devices, or servers, a number of storage computing devices within a storage-area network (SAN), as well as a number of other types of computing devices. The computing devices are typically networked together, and may operate at least partially in unison to provide for fault tolerance, load balancing, and other types of functionality. Fault tolerance means that if one computing device fails, one or more additional computing devices are still available. Load balancing distributes the workload over multiple computing devices.
To ensure that the computing devices within a multiple-computing device system are operating correctly, testing of the computing devices may be performed. Testing of individual computing devices may be performed, as well as testing of the system as a whole. For example, testing may ensure that components of the individual computing devices are operating properly, as well as that the computing devices are interacting with one another properly so that the system as whole is operating properly. Where each computing device within a system is referred to as a target computing device, a source computing device may be communicatively connected to the system to control the test process. The target computing devices within the system may also be referred to as host computing devices, as well as by other terms.
Generally, the source computing device starts processes on the target computing devices. Once a process is started on a target computing device, it may collect information useful in determining whether the target computing device is operating properly. This information may include, for instance, acknowledgments that specific instructions have been properly executed on the target computing device, as well as the results of execution of such instructions. When the process is finished, it sends the information back to the source computing device, where the information can be examined, along with the information received from the other target computing devices.
Prior art testing methodologies enable the source computing device to control just when a process starts on a given target computing device. Once the process has been started on a target computing device, the source computing device is unable to control its execution, such that the process is executed in its entirety. That is, the source computing device is unable to control the process so that, for instance, different portions of the process are executed at different times, as desired by the source computing device.
For example, the source computing device may need to have each target computing device perform an initialization routine, and then test how one target computing device responds when another target computing device has been placed in a given state. The source computing device thus needs to have the latter target computing device enter a given state before the former target computing device continues executing its process. That is, the source computing device needs to synchronize the execution of the processes among the various target computing devices.
However, prior art testing methodologies do not enable the source computing device to control the execution of processes on target computing devices down to this needed level of granularity. That is, prior art testing methodologies do not allow the source computing device to control and synchronize the execution of processes on target computing devices once the processes have started. For this and other reasons, therefore, there is a need for the present invention.